Skip to content

add rle v2 encoding for segment v2#2949

Closed
kangpinghuang wants to merge 1 commit into
apache:masterfrom
kangpinghuang:add_rle_v2
Closed

add rle v2 encoding for segment v2#2949
kangpinghuang wants to merge 1 commit into
apache:masterfrom
kangpinghuang:add_rle_v2

Conversation

@kangpinghuang

Copy link
Copy Markdown
Contributor
  1. reuse the rle encoding in alpha rowset
  2. modify segment_test because of change of encoding

issue: #2886

1. reuse the rle encoding in alpha rowset
2. modify segment_test because of change of encoding
@chaoyli

chaoyli commented Feb 19, 2020

Copy link
Copy Markdown
Contributor

If you just move the old code from the AlphaRowset, the question of AlphaRowset still exists.
Like

  • I/O exemplification of read StreamHead.

  • Two much virtual functions of read caused by streaming read of ORC.

  • Not import ORCFile the latest enhancement in recent years.

This are all questions we start to build SegmentV2.

BiteTheDDDDt pushed a commit that referenced this pull request Jun 29, 2026
…S Agent lifetime race under high EPS (#64040)

### What problem does this PR solve?

Issue Number: close 63193

Related PR: [#2949](apache/brpc#2949)


Problem Summary:

Under high throughput, a race condition in brpc's bvar subsystem causes
a SIGSEGV during take_sample. When a thread's TLS Agent destructs after
its owning
AgentCombiner (Reducer, IntRecorder, or Percentile) has already been
freed, the agent dereferences a dangling raw pointer in its destructor
via
  combiner->commit_and_erase(this).


The fix (backport of apache/brpc#2949) replaces the raw back-pointer
from Agent to AgentCombiner with a weak_ptr, and makes the owning
classes hold the combiner via
shared_ptr. The agent destructor now calls combiner.lock() — if the
combiner is already destroyed, lock() returns null and the destructor
safely no-ops, eliminating
  the use-after-free.
github-actions Bot pushed a commit that referenced this pull request Jun 29, 2026
…S Agent lifetime race under high EPS (#64040)

### What problem does this PR solve?

Issue Number: close 63193

Related PR: [#2949](apache/brpc#2949)


Problem Summary:

Under high throughput, a race condition in brpc's bvar subsystem causes
a SIGSEGV during take_sample. When a thread's TLS Agent destructs after
its owning
AgentCombiner (Reducer, IntRecorder, or Percentile) has already been
freed, the agent dereferences a dangling raw pointer in its destructor
via
  combiner->commit_and_erase(this).


The fix (backport of apache/brpc#2949) replaces the raw back-pointer
from Agent to AgentCombiner with a weak_ptr, and makes the owning
classes hold the combiner via
shared_ptr. The agent destructor now calls combiner.lock() — if the
combiner is already destroyed, lock() returns null and the destructor
safely no-ops, eliminating
  the use-after-free.
github-actions Bot pushed a commit that referenced this pull request Jun 29, 2026
…S Agent lifetime race under high EPS (#64040)

### What problem does this PR solve?

Issue Number: close 63193

Related PR: [#2949](apache/brpc#2949)


Problem Summary:

Under high throughput, a race condition in brpc's bvar subsystem causes
a SIGSEGV during take_sample. When a thread's TLS Agent destructs after
its owning
AgentCombiner (Reducer, IntRecorder, or Percentile) has already been
freed, the agent dereferences a dangling raw pointer in its destructor
via
  combiner->commit_and_erase(this).


The fix (backport of apache/brpc#2949) replaces the raw back-pointer
from Agent to AgentCombiner with a weak_ptr, and makes the owning
classes hold the combiner via
shared_ptr. The agent destructor now calls combiner.lock() — if the
combiner is already destroyed, lock() returns null and the destructor
safely no-ops, eliminating
  the use-after-free.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants